package com.moyuxi.sound_of_the_forest.ui.route


interface RouteI {
    val name: String
    val route: String
}

/**
 * Activity级路由
 */
sealed class AppRouter(override val route: String, override val name: String) : RouteI {
    /**
     * Main Activity
     */
    object Home : AppRouter("home", "MainActivity")

    /**
     * 扫描歌曲Activity
     */
    object ScanMusic : AppRouter("scan_music", "ScanMusicActivity")

    /**
     * 关于我Activity
     */
    object AboutMeScreen : AppRouter("about_me", "AboutMeActivity")

    /**
     * 错误报告Activity
     */
    object ErrorInfoScreen : AppRouter("error_info", "ErrorInfoActivity")
}

/**
 * 抽屉功能组级路由
 */
sealed class DrawerRouter(override val route: String, override val name: String) : RouteI {
    /**
     * 音乐分类组
     */
    object MusicClassify : DrawerRouter("music_classify", "音乐分类组")

    /**
     * 其它分类组
     */
    object OtherClassify : DrawerRouter("other_classify", "其它分类组")
}

/**
 * 音乐分类项级路由
 */
sealed class MusicClassifyRouter(override val route: String, override val name: String) : RouteI {
    /**
     * 歌单项
     */
    object MusicList : MusicClassifyRouter("music_list_frame", "歌曲")

    /**
     * 专辑项
     */
    object AlbumList : MusicClassifyRouter("album_list_frame", "专辑")

    /**
     * 艺术家项
     */
    object ArtistList : MusicClassifyRouter("artist_list_frame", "艺术家")

    /**
     * 专辑与艺术家详情页
     */
    object AlbumOrArtistList : MusicClassifyRouter("album_or_artist_info", "详情")

    /**
     * 搜索歌曲页
     */
    object SearchMusic : MusicClassifyRouter("search_music", "搜索歌曲")
}

/**
 * 其它分类项级路由
 */
sealed class OtherClassifyRouter(override val route: String, override val name: String) : RouteI {
    /**
     * 歌单项
     */
    object ScanMusic : OtherClassifyRouter("scan_music", "扫描歌曲")

    /**
     * 专辑项
     */
    object AboutMe : OtherClassifyRouter("about_me", "关于我")
}